﻿using System;
using MoonSharp.Interpreter;
using UnityEngine;

namespace Lua
{
	// Token: 0x020002FD RID: 765
	[MoonSharpUserData]
	public class Shooting
	{
		// Token: 0x060012EC RID: 4844 RVA: 0x00082080 File Offset: 0x00080280
		[MoonSharpHidden]
		public Shooting(EntityBase e)
		{
			if (e == null)
			{
				Debug.LogError("Creating Shooting with no entity");
			}
			this.shooterController = e.GetComponent<AIShooterController>();
		}

		// Token: 0x170002E4 RID: 740
		// (get) Token: 0x060012ED RID: 4845 RVA: 0x000820AA File Offset: 0x000802AA
		public bool isAiming
		{
			get
			{
				return this.shooterController.aiming;
			}
		}

		// Token: 0x170002E5 RID: 741
		// (get) Token: 0x060012EE RID: 4846 RVA: 0x000820B7 File Offset: 0x000802B7
		public bool isFiring
		{
			get
			{
				return this.shooterController.isFiring;
			}
		}

		// Token: 0x170002E6 RID: 742
		// (get) Token: 0x060012EF RID: 4847 RVA: 0x000820C4 File Offset: 0x000802C4
		// (set) Token: 0x060012F0 RID: 4848 RVA: 0x000820D1 File Offset: 0x000802D1
		public bool accurateFiring
		{
			get
			{
				return this.shooterController.accurateFire;
			}
			set
			{
				this.shooterController.accurateFire = value;
			}
		}

		// Token: 0x170002E7 RID: 743
		// (get) Token: 0x060012F1 RID: 4849 RVA: 0x000820DF File Offset: 0x000802DF
		// (set) Token: 0x060012F2 RID: 4850 RVA: 0x000820EC File Offset: 0x000802EC
		public float inaccuracyFactor
		{
			get
			{
				return this.shooterController.inaccuracyFactor;
			}
			set
			{
				this.shooterController.inaccuracyFactor = value;
			}
		}

		// Token: 0x170002E8 RID: 744
		// (get) Token: 0x060012F3 RID: 4851 RVA: 0x000820FA File Offset: 0x000802FA
		// (set) Token: 0x060012F4 RID: 4852 RVA: 0x00082107 File Offset: 0x00080307
		public bool predictiveAiming
		{
			get
			{
				return this.shooterController.predictiveAiming;
			}
			set
			{
				this.shooterController.predictiveAiming = value;
			}
		}

		// Token: 0x170002E9 RID: 745
		// (get) Token: 0x060012F5 RID: 4853 RVA: 0x00082115 File Offset: 0x00080315
		// (set) Token: 0x060012F6 RID: 4854 RVA: 0x00082122 File Offset: 0x00080322
		public float firingInterval
		{
			get
			{
				return this.shooterController.firingInterval;
			}
			set
			{
				this.shooterController.firingInterval = value;
			}
		}

		// Token: 0x170002EA RID: 746
		// (get) Token: 0x060012F7 RID: 4855 RVA: 0x00082130 File Offset: 0x00080330
		public bool burstFire
		{
			get
			{
				return this.shooterController.burstFire;
			}
		}

		// Token: 0x170002EB RID: 747
		// (get) Token: 0x060012F8 RID: 4856 RVA: 0x0008213D File Offset: 0x0008033D
		// (set) Token: 0x060012F9 RID: 4857 RVA: 0x0008214A File Offset: 0x0008034A
		public int burstFireRounds
		{
			get
			{
				return this.shooterController.burstFireRounds;
			}
			set
			{
				this.shooterController.burstFireRounds = value;
			}
		}

		// Token: 0x170002EC RID: 748
		// (get) Token: 0x060012FA RID: 4858 RVA: 0x00082158 File Offset: 0x00080358
		// (set) Token: 0x060012FB RID: 4859 RVA: 0x00082165 File Offset: 0x00080365
		public float burstFireInterval
		{
			get
			{
				return this.shooterController.burstFireInterval;
			}
			set
			{
				this.shooterController.burstFireInterval = value;
			}
		}

		// Token: 0x060012FC RID: 4860 RVA: 0x00082173 File Offset: 0x00080373
		public void SetBurstFire(bool enable)
		{
			this.shooterController.SetBurstFireMode(enable);
		}

		// Token: 0x060012FD RID: 4861 RVA: 0x00082181 File Offset: 0x00080381
		public void SetProjectileColor(int r, int g, int b)
		{
			this.shooterController.SetProjectileColor(r, g, b);
		}

		// Token: 0x060012FE RID: 4862 RVA: 0x00082191 File Offset: 0x00080391
		public void SetProjectileSpeed(float speedMult)
		{
			this.shooterController.SetProjectileSpeed(speedMult);
		}

		// Token: 0x060012FF RID: 4863 RVA: 0x0008219F File Offset: 0x0008039F
		public void SetProjectileScale(float scaleMult)
		{
			this.shooterController.SetProjectileScale(scaleMult);
		}

		// Token: 0x06001300 RID: 4864 RVA: 0x000821AD File Offset: 0x000803AD
		public void SetFiringSFX(string clip)
		{
			this.shooterController.SetRaygunFiringSound(clip);
		}

		// Token: 0x06001301 RID: 4865 RVA: 0x000821BB File Offset: 0x000803BB
		public void SetProjectileImpactSFX(string clip)
		{
			this.shooterController.SetProjectileImpactSound(clip);
		}

		// Token: 0x06001302 RID: 4866 RVA: 0x000821C9 File Offset: 0x000803C9
		public void FixGunAimingOrientation()
		{
			this.shooterController.ReorientGun();
		}

		// Token: 0x040016D9 RID: 5849
		private AIShooterController shooterController;
	}
}
